![]() |
![]() | ||||||||||||||||||||||||||||
![]() | |||||||||||||||||||||||||||||
![]() ![]() ![]() ![]()
╨α±≥≡εΓ√σ Φτεß≡αµσφΦ |
╬µΦΣαφΦσ ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ╩αΩ ∞√ ≤µσ πεΓε≡ΦδΦ Γ φα°Φ⌡ ∩≡σΣ√Σ≤∙Φ⌡ ±≥α≥ⁿ ⌡, ταπ≡≤τΩα Φτεß≡αµσφΦΘ Φτ ±σ≥Φ Internet - ΣδΦ≥σδⁿφ√Θ ∩≡ε÷σ±±, Ωε≥ε≡√Θ Γ ±≡σΣφσ∞ ΦΣσ≥ ±ε ±Ωε≡ε±≥ⁿ■ 1 ╩ßαΘ≥ Γ ±σΩ≤φΣ≤. ╧ε²≥ε∞≤ Φτεß≡αµσφΦ ταπ≡≤µα■≥± φαΓΦπα≥ε≡ε∞ Γ ε≥ΣσδⁿφεΘ ταΣα≈σ. ╧≡Φ ²≥ε∞ ∞σ≥εΣ getImage ≥εδⁿΩε ±ετΣασ≥ εß·σΩ≥ Ωδα±±α Image, α ∞σ≥εΣ drawImage ΦφΦ÷ΦΦ≡≤σ≥ ταπ≡≤τΩ≤ Φτεß≡αµσφΦ Φ ≡Φ±≤σ≥ σπε. ╧≡Φ≈σ∞ σ±δΦ ⌠αΘδ Φτεß≡αµσφΦ Φ∞σσ≥ ßεδⁿ°≤■ ΣδΦφ≤, εφ ß≤Σσ≥ ∩ε Γδ ≥ⁿ± Γ εΩφσ α∩δσ≥α ∩ε±≥σ∩σφφε ∩ε ∞σ≡σ ταπ≡≤τΩΦ. ╬ΣφαΩε Γ φσΩε≥ε≡√⌡ ±δ≤≈α ⌡ ß√δε ß√ ≤Σεßφε Γφα≈αδσ ταπ≡≤τΦ≥ⁿ Φτεß≡αµσφΦσ ∩εδφε±≥ⁿ■, α δΦ°ⁿ τα≥σ∞ Γ√∩εδφ ≥ⁿ ≡Φ±εΓαφΦσ, ≈≥εß√ Φτεß≡αµσφΦσ ∩ε ΓΦδε±ⁿ φα ²Ω≡αφσ ±≡ατ≤. ╩≡ε∞σ ≥επε, α∩δσ≥ ∞εµσ≥ ≡Φ±εΓα≥ⁿ ±≡ατ≤ φσ±ΩεδⁿΩε Φτεß≡αµσφΦΘ Γ ≡ατφ√⌡ ∞σ±≥α⌡ ±Γεσπε εΩφα ΦδΦ ∩εΩατ√Γα≥ⁿ Φ⌡ ∩ε ε≈σ≡σΣΦ Γ εΣφε∞ Φ ≥ε∞ µσ ∞σ±≥σ Σδ Σε±≥ΦµσφΦ ²⌠⌠σΩ≥α αφΦ∞α÷ΦΦ. ┼±≥ⁿ δΦ ±∩ε±εß ε∩≡σΣσδΦ≥ⁿ, ΩεπΣα Φτεß≡αµσφΦσ ß≤Σσ≥ ταπ≡≤µσφε ∩εδφε±≥ⁿ■? ┼±≥ⁿ, Φ ∩≡Φ≈σ∞ ÷σδ√⌡ ΣΓα. ╬ΣΦφ Φτ φΦ⌡ ±Γ ταφ ± Φ±∩εδⁿτεΓαφΦσ∞ Ωδα±±α MediaTracker, ±∩σ÷Φαδⁿφε ∩≡σΣφατφα≈σφφεπε Σδ ²≥εΘ ÷σδΦ Φ Σε±≥α≥ε≈φε ≤Σεßφεπε Γ Φ±∩εδⁿτεΓαφΦΦ, Σ≡≤πεΘ ε±φεΓαφ φα ∩σ≡σε∩≡σΣσδσφΦΦ εΣφεπε Φτ ∞σ≥εΣεΓ Φφ≥σ≡⌠σΘ±α ImageObserver. ╧≡Φ∞σφσφΦσ Ωδα±±α MediaTracker─δ ≥επε ≈≥εß√ Γ√∩εδφΦ≥ⁿ εµΦΣαφΦσ ταπ≡≤τΩΦ φσ±ΩεδⁿΩΦ⌡ Φτεß≡αµσφΦΘ, ∩≡ε∙σ Γε±∩εδⁿτεΓα≥ⁿ± Ωδα±±ε∞ MediaTracker, α φσ Φφ≥σ≡⌠σΘ±ε∞ ImageObserver. ╩αΩ ²≥ε ±Σσδα≥ⁿ? ╬ß√≈φε ∞σ≥εΣ init α∩δσ≥α ±ετΣασ≥ εß·σΩ≥ Ωδα±±α MediaTracker ± ∩ε∞ε∙ⁿ■ Ωεφ±≥≡≤Ω≥ε≡α Φ ΣεßαΓδ σ≥ Γ φσπε Γ±σ Φτεß≡αµσφΦ , ταπ≡≤τΩΦ Ωε≥ε≡√⌡ φσεß⌡εΣΦ∞ε ΣεµΣα≥ⁿ± . ╤ετΣαφΦσ εß·σΩ≥α Ωδα±±α MediaTracker╬ß·σΩ≥ Ωδα±±α MediaTracker ±ετΣασ≥± ±δσΣ≤■∙Φ∞ εß≡ατε∞: MediaTracker mt; mt = new MediaTracker(this); ╩εφ±≥≡≤Ω≥ε≡≤ Ωδα±±α MediaTracker ∩σ≡σΣασ≥± ±±√δΩα φα Ωε∞∩εφσφ≥, Σδ Ωε≥ε≡επε φσεß⌡εΣΦ∞ε ε≥±δσµΦΓα≥ⁿ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ. ┬ Σαφφε∞ ±δ≤≈ασ ²≥ε φα° α∩δσ≥, ∩ε²≥ε∞≤ ∞√ ∩σ≡σΣασ∞ Ωεφ±≥≡≤Ω≥ε≡≤ τφα≈σφΦσ this. ─εßαΓδσφΦσ Φτεß≡αµσφΦΘ Γ εß·σΩ≥ Ωδα±±α MediaTracker─αδσσ ∞σ≥εΣ init Σεδµσφ ±ετΣα≥ⁿ Γ±σ φσεß⌡εΣΦ∞√σ εß·σΩ≥√ Ωδα±±α Image Φ ΣεßαΓΦ≥ⁿ Φ⌡ Γ εß·σΩ≥ MediaTracker ∞σ≥εΣε∞ addImage. ═Φµσ ∞√ ∩εΩαταδΦ ⌠≡απ∞σφ≥ ΩεΣα, Γ Ωε≥ε≡ε∞ Γ√∩εδφ σ≥± ΣεßαΓδσφΦσ ≥≡σ⌡ Φτεß≡αµσφΦΘ: Image img1; Image img2; Image img3; img1 = getImage(getCodeBase(), "pic1.gif"); img2 = getImage(getCodeBase(), "pic2.gif"); img3 = getImage(getCodeBase(), "pic3.gif"); mt.addImage(img1 , 0); mt.addImage(img2 , 0); mt.addImage(img3 , 0); ┬ Ωα≈σ±≥Γσ ∩σ≡Γεπε ∩α≡α∞σ≥≡α ∞σ≥εΣ≤ addImage ∩σ≡σΣασ≥± ±±√δΩα φα Φτεß≡αµσφΦσ, ταπ≡≤τΩ≤ Ωε≥ε≡επε φσεß⌡εΣΦ∞ε ε≥±δσµΦΓα≥ⁿ, α Γ Ωα≈σ±≥Γσ Γ≥ε≡επε - ΦΣσφ≥Φ⌠ΦΩα≥ε≡, Ωε≥ε≡√Θ ∞εµφε ß≤Σσ≥ Φ±∩εδⁿτεΓα≥ⁿ Γ ∩≡ε÷σ±±σ ε≥±δσµΦΓαφΦ . ┼±δΦ Γ±σ, ≈≥ε Γα∞ φ≤µφε, ²≥ε ΣεµΣα≥ⁿ± εΩεφ≈αφΦ ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ, ≥ε Σδ Γ≥ε≡επε ∩α≡α∞σ≥≡α Γ√ ∞εµσ≥σ ≤Ωατα≥ⁿ φ≤δσΓεσ τφα≈σφΦσ. ╬µΦΣαφΦσ ταπ≡≤τΩΦ ΣεßαΓδσφφ√⌡ Φτεß≡αµσφΦΘ─δ ≥επε ≈≥εß√ ≤ßσΣΦ≥ⁿ± , ≈≥ε Γ±σ Φτεß≡αµσφΦ ταπ≡≤µσφ√, Γ√ ∞εµσ≥σ Γε±∩εδⁿτεΓα≥ⁿ± ∞σ≥εΣε∞ waitForAll. ▌≥ε≥ ∞σ≥εΣ ΦφΦ÷ΦΦ≡≤σ≥ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ, α ≥αΩµσ ταΣσ≡µΦ≥ Γ√∩εδφσφΦσ Γ√τΓαΓ°σπε ∩ε≥εΩα Σε ∞ε∞σφ≥α ∩εδφεΘ ταπ≡≤τΩΦ Γ±σ⌡ Φτεß≡αµσφΦΘ, ΣεßαΓδσφφ√⌡ Γ εß·σΩ≥ Ωδα±±α MediaTracker: try { mt.waitForAll(); } catch (InterruptedException ex) { } ╬ß≡α≥Φ≥σ ΓφΦ∞αφΦσ, ≈≥ε ∞σ≥εΣ waitForAll ∞εµσ≥ ±ετΣαΓα≥ⁿ Φ±Ωδ■≈σφΦσ InterruptedException. ▌≥ε Φ±Ωδ■≈σφΦσ ΓετφΦΩασ≥, σ±δΦ ∩ε ΩαΩεΘ-δΦßε ∩≡Φ≈Φφσ ∩≡ε÷σ±± εµΦΣαφΦ ∩≡σ≡√Γασ≥± . ╫α∙σ Γ±σπε ≡Φ±εΓαφΦσ Γ√∩εδφ σ≥± Γ ε≥Σσδⁿφε∞ ∩ε≥εΩσ, ∩ε²≥ε∞≤ ∞σ≥εΣ waitForAll Σεδµσφ Γ√τ√Γα≥ⁿ± Γ φα≈αδσ ±εε≥Γσ≥±≥Γ≤■∙σπε ∞σ≥εΣα run. ═Φµσ ∞√ ∩≡ΦΓσδΦ Φ±⌡εΣφ√σ ≥σΩ±≥√ ∩≡ΦδεµσφΦ ImageDrawWait, Γ Ωε≥ε≡ε∞ ≥αΩεσ εµΦΣαφΦσ Γ√∩εδφ σ≥± Γ ∞σ≥εΣσ paint, ≈≥ε ∩≡ΦΓεΣΦ≥, εΣφαΩε, Ω ßδεΩΦ≡εΓΩσ ≡αßε≥√ α∩δσ≥α Σε ∞ε∞σφ≥α ταπ≡≤τΩΦ Γ±σ⌡ Φτεß≡αµσφΦΘ. ┬ Σαφφε∞ ±δ≤≈ασ ²≥ε φσ Ω≡Φ≥Φ≈φε, ≥αΩ ΩαΩ Ω≡ε∞σ ≡Φ±εΓαφΦ Φτεß≡αµσφΦΘ φα° α∩δσ≥ φΦ≈σπε φσ Σσδασ≥, εΣφαΩε ßεδσσ ∩≡σΣ∩ε≈≥Φ≥σδⁿφ√∞ Γδ σ≥± Γ√∩εδφσφΦσ ΣδΦ≥σδⁿφ√⌡ ∩≡ε÷σ±±εΓ Γ ε≥Σσδⁿφε∞ ∩ε≥εΩσ. ─≡≤πΦσ ∞σ≥εΣ√ Ωδα±±α MediaTracker╩αΩΦσ Σ≡≤πΦσ ∩εδστφ√σ ∞σ≥εΣ√, Ω≡ε∞σ ∞σ≥εΣεΓ addImage Φ waitForAll σ±≥ⁿ Γ Ωδα±±σ MediaTracker? public boolean waitForAll(long ms); ╠σ≥εΣ waitForAll ± ∩α≡α∞σ≥≡ε∞ ms ∩ετΓεδ σ≥ Γ√∩εδφ ≥ⁿ εµΦΣαφΦσ Γ ≥σ≈σφΦσ ταΣαφφεπε Γ≡σ∞σφΦ. ┬≡σ∞ εµΦΣαφΦ ταΣασ≥± Γ ∞ΦδδΦ±σΩ≤φΣα⌡. ╧≡Φ ²≥ε∞ σ±δΦ τα ≤Ωαταφφεσ Γ≡σ∞ Γ±σ Φτεß≡αµσφΦ ß√δΦ ≤±∩σ°φε ταπ≡≤µσφ√, ∞σ≥εΣ waitForAll ΓετΓ≡α∙ασ≥ τφα≈σφΦσ true, σ±δΦ φσ≥ - false. ┬α≡Φαφ≥ ∞σ≥εΣα checkAll ± ∩α≡α∞σ≥≡ε∞ load ∩ετΓεδ σ≥ ∩≡εΓσ≡Φ≥ⁿ, ταΓσ≡°Φδα±ⁿ δΦ ταπ≡≤τΩα ε≥±δσµΦΓασ∞√⌡ Φτεß≡αµσφΦΘ: public boolean checkAll(boolean load); ┼±δΦ τφα≈σφΦσ ∩α≡α∞σ≥≡α load ≡αΓφε true, ∞σ≥εΣ ΦφΦ÷ΦΦ≡≤σ≥ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ. ┼±δΦ ∩≡Φ ΣεßαΓδσφΦΦ Φτεß≡αµσφΦΘ ∞σ≥εΣε∞ addImage Γ√ Φ±∩εδⁿτεΓαδΦ Γ≥ε≡εΘ ∩α≡α∞σ≥≡ ²≥επε ∞σ≥εΣα Σδ ∩≡Φ±ΓαΦΓαφΦ ≡ατφ√∞ π≡≤∩∩α∞ Φτεß≡αµσφΦΘ ≡ατδΦ≈φ√σ ΦΣσφ≥Φ⌠ΦΩα≥ε≡√, ≥ε ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣα checkID ∞εµφε ΣεµΣα≥ⁿ± ταΓσ≡°σφΦ ταπ≡≤τΩΦ ε≥ΣσδⁿφεΘ π≡≤∩∩√ Φτεß≡αµσφΦΘ: public boolean checkID(int id); ┼±≥ⁿ ≥αΩµσ Γα≡Φαφ≥ ²≥επε ∞σ≥εΣα, ∩ετΓεδ ■∙ΦΘ ∩≡εΓσ≡Φ≥ⁿ ταπ≡≤τΩ≤ π≡≤∩∩√ Φτεß≡αµσφΦΘ ± ταΣαφφ√∞ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ε∞: public boolean checkID(int id, boolean load); ╠σ≥εΣ waitForID ± ∩α≡α∞σ≥≡α∞Φ id Φ ms ∩ετΓεδ σ≥ Γ√∩εδφ ≥ⁿ εµΦΣαφΦσ ταπ≡≤τΩΦ π≡≤∩∩√ Φτεß≡αµσφΦΘ ± ταΣαφφ√∞ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ε∞ Γ ≥σ≈σφΦΦ ≤Ωαταφφεπε ∩σ≡ΦεΣα Γ≡σ∞σφΦ: public boolean waitForID(int id, long ms); ╩δα±± MediaTracker ∩≡σΣε±≥αΓδ σ≥ ≥αΩµσ Γετ∞εµφε±≥ⁿ ∩≡ε±δσµΦΓα≥ⁿ ±α∞ ∩≡ε÷σ±± ταπ≡≤τΩΦ Γ±σ⌡ ΣεßαΓδσφφ√⌡ Γ φσπε Φτεß≡αµσφΦΘ ΦδΦ ε≥Σσδⁿφ√⌡ π≡≤∩∩ Φτεß≡αµσφΦΘ ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣεΓ statusAll Φ statusID: public int statusAll(boolean load); public int statusID(int id, boolean load); ┬ ταΓΦ±Φ∞ε±≥Φ ε≥ τφα≈σφΦ ∩α≡α∞σ≥≡α load ²≥Φ ∞σ≥εΣ√ ∞επ≤≥ ΦφΦ÷ΦΦ≡εΓα≥ⁿ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ. ┼±δΦ ∩α≡α∞σ≥≡ ≡αΓσφ true, ταπ≡≤τΩα Φτεß≡αµσφΦΘ ΦφΦ÷ΦΦ≡≤σ≥± , σ±δΦ false - Γ√∩εδφ σ≥± ≥εδⁿΩε ∩≡εΓσ≡Ωα ≥σΩ≤∙σπε ±ε±≥ε φΦ ταπ≡≤τΩΦ. ╠σ≥εΣ√ statusAll Φ statusID ΓετΓ≡α∙α■≥ τφα≈σφΦσ, ±ε±≥αΓδσφφεσ Φτ ε≥Σσδⁿφ√⌡ ßΦ≥εΓ ±ε±≥ε φΦ ∩≡Φ ∩ε∞ε∙Φ δεπΦ≈σ±ΩεΘ ε∩σ≡α÷ΦΦ ╚╦╚. ═Φµσ ∞√ ∩σ≡σ≈Φ±δΦδΦ ²≥Φ ßΦ≥√ ±ε±≥ε φΦ Φ ∩≡ΦΓσδΦ Φ⌡ Ω≡α≥Ωεσ ε∩Φ±αφΦσ.
┼∙σ ≈σ≥√≡σ ∞σ≥εΣα, ε∩≡σΣσδσφφ√⌡ Γ Ωδα±±σ MediaTracker, ±Γ ταφ√ ± εß≡αßε≥ΩεΘ ε°ΦßεΩ: public boolean isErrorAny(); public boolean isErrorID(int id); public Object[] getErrorsAny(); public Object[] getErrorsID(int id); ╠σ≥εΣ√ isErrorAny Φ isErrorID ∩ετΓεδ ■≥ ∩≡εΓσ≡Φ≥ⁿ, ΓετφΦΩδα δΦ ε°ΦßΩα ∩≡Φ ταπ≡≤τΩσ, ±εε≥Γσ≥±≥Γσφφε, δ■ßεπε Φτ ε≥±δσµΦΓασ∞√⌡ Φτεß≡αµσφΦΘ ΦδΦ Φτεß≡αµσφΦΘ Φτ ταΣαφφεΘ π≡≤∩∩√. ┼±δΦ ε°ΦßΩα ∩≡εΦτε°δα, ΓετΓ≡α∙ασ≥± τφα≈σφΦσ true, σ±δΦ φσ≥ - τφα≈σφΦσ false. ╠σ≥εΣ√ getErrorsAny Φ getErrorsID ΓετΓ≡α∙α■≥ ∞α±±ΦΓ εß·σΩ≥εΓ, ∩≡Φ εµΦΣαφΦΦ ταπ≡≤τΩΦ Ωε≥ε≡√⌡ ∩≡εΦτε°δα ε°ΦßΩα. ╧σ≡Γ√Θ Φτ ²≥Φ⌡ ∞σ≥εΣεΓ ΓετΓ≡α∙ασ≥ ∞α±±ΦΓ Σδ Γ±σ⌡ ε≥±δσµΦΓασ∞√⌡ εß·σΩ≥εΓ, Γ≥ε≡εΘ - ≥εδⁿΩε εß·σΩ≥εΓ Φτ ταΣαφφεΘ π≡≤∩∩√. ╧≡Φ∞σφσφΦσ Φφ≥σ≡⌠σΘ±α ImageObserver┬≥ε≡εΘ ±∩ε±εß εµΦΣαφΦ ταΓσ≡°σφΦ ∩≡ε÷σ±±α ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ ±Γ ταφ ± Φφ≥σ≡⌠σΘ±ε∞ ImageObserver: ┴Φ≥√ ⌠δαπεΓ Σδ ∩α≡α∞σ≥≡α infoflags ∞σ≥εΣα imageUpdatepublic final static int ABORT; public final static int ALLBITS; public final static int ERROR; public final static int FRAMEBITS; public final static int HEIGHT; public final static int PROPERTIES; public final static int SOMEBITS; public final static int WIDTH; ╠σ≥εΣ imageUpdatepublic abstract boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height); ╩αΩ ΓΦΣΦ≥σ, Γ Φφ≥σ≡⌠σΘ±σ ImageObserver ε∩≡σΣσδσφ σΣΦφ±≥Γσφφ√Θ ∞σ≥εΣ imageUpdate Φ φαßε≡ ßΦ≥εΓ√⌡ ⌠δαπεΓ Σδ ²≥επε ∞σ≥εΣα. ╩δα±± Component, ε≥ Ωε≥ε≡επε ∩≡εΦ±⌡εΣΦ≥ Ωδα±± Applet, ≡σαδΦτ≤σ≥ Φφ≥σ≡⌠σΘ± ImageObserver: public abstract class java.awt.Component extends java.lang.Object implements java.awt.image.ImageObserver { . . . } ▌≥ε≥ Φφ≥σ≡⌠σΘ± Φ±∩εδⁿτ≤σ≥± Σδ ε≥±δσµΦΓαφΦ ∩≡ε÷σ±±α ταπ≡≤τΩΦ Φ ∩σ≡σ≡Φ±εΓΩΦ Φτεß≡αµσφΦΘ Φ Σ≡≤πΦ⌡ Ωε∞∩εφσφ≥, ≡α±∩εδεµσφφ√⌡ Γφ≤≥≡Φ Ωε∞∩εφσφ≥α. ┬ ≈α±≥φε±≥Φ, εφ Φ±∩εδⁿτ≤σ≥± Σδ ε≥±δσµΦΓαφΦ ταπ≡≤τΩΦ Φ ≡Φ±εΓαφΦ ≡α±≥≡εΓ√⌡ Φτεß≡αµσφΦΘ Γ εΩφσ α∩δσ≥α, ≈σ∞ ∞√ Φ Γε±∩εδⁿτ≤σ∞± . ┬ ∩≡ε÷σ±±σ ταπ≡≤τΩΦ Γ√τ√Γασ≥± ∞σ≥εΣ imageUpdate, ∩ε²≥ε∞≤ ≈≥εß√ ε≥±δσµΦΓα≥ⁿ ταπ≡≤τΩ≤ Φτεß≡αµσφΦΘ, φα° α∩δσ≥ Σεδµσφ ∩σ≡σε∩≡σΣσδΦ≥ⁿ ²≥ε≥ ∞σ≥εΣ. ╧≡ε÷σΣ≤≡α εµΦΣαφΦ ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ Σε±≥α≥ε≈φε ∩≡ε±≥α. ╧≡σµΣσ Γ±σπε, α∩δσ≥ Σεδµσφ ∩σ≡σΣα≥ⁿ Γ ∩ε±δσΣφσ∞ ∩α≡α∞σ≥≡σ ∞σ≥εΣ≤ drawImage ±±√δΩ≤ φα Φφ≥σ≡⌠σΘ± ImageObserver, Ωε≥ε≡√Θ ß≤Σσ≥ ∩≡Φ∞σφ ≥ⁿ± Σδ ε≥±δσµΦΓαφΦ ∩≡ε÷σ±±α ταπ≡≤τΩΦ: g.drawImage(Img, x, y, width, height, this); ╟Σσ±ⁿ Γ Ωα≈σ±≥Γσ ±±√δΩΦ φα Φφ≥σ≡⌠σΘ± ImageObserver ∞√ ∩σ≡σΣαδΦ τφα≈σφΦσ this. ╧≡Φ ²≥ε∞ ß≤Σσ≥ ∩≡Φ∞σφσφ Φφ≥σ≡⌠σΘ± φα°σπε α∩δσ≥α. ╤εε≥Γσ≥±≥Γσφφε, φα∞ φ≤µφε ε∩≡σΣσδΦ≥ⁿ Γ Ωδα±±σ α∩δσ≥α ∞σ≥εΣ imageUpdate, Ωε≥ε≡√Θ ß≤Σσ≥ Γ√τ√Γα≥ⁿ± Γ ∩≡ε÷σ±±σ ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ. ═Φµσ ∞√ ∩≡ΦΓσδΦ Γετ∞εµφ√Θ Γα≡Φαφ≥ ≡σαδΦτα÷ΦΦ ²≥επε ∞σ≥εΣα: public boolean imageUpdate( Image img, int flags, int x, int y, int w, int h) { // ╧≡εΓσ≡ σ∞, Γ±σ δΦ // ßΦ≥√ Φτεß≡αµσφΦ ταπ≡≤µσφ√ fAllLoaded = ((flags & ALLBITS) != 0); // ┼±δΦ Γ±σ, ∩σ≡σ≡Φ±εΓ√Γασ∞ εΩφε if(fAllLoaded) repaint(); // ┼±δΦ Γ±σ ßΦ≥√ ταπ≡≤µσφ√, // ΣαδⁿφσΘ°Φσ Γ√τεΓ√ // ∞σ≥εΣα imageUpdate φσ φ≤µφ√ return !fAllLoaded; } ╫σ≡στ ∩σ≡Γ√Θ ∩α≡α∞σ≥≡ img ∞σ≥εΣ≤ imageUpdate ∩σ≡σΣασ≥± ±±√δΩα φα Φτεß≡αµσφΦσ, ταπ≡≤τΩα Ωε≥ε≡επε ε≥±δσµΦΓασ≥± . ╧α≡α∞σ≥≡ flags ε≥≡αµασ≥ ±ε±≥ε φΦσ ∩≡ε÷σ±±α ταπ≡≤τΩΦ. ╫σ≡στ ε±≥αδⁿφ√σ ∩α≡α∞σ≥≡√ x, y, w Φ h ∩σ≡σΣα■≥± , ±εε≥Γσ≥±≥Γσφφε, Ωεε≡ΣΦφα≥√ Φ ≡ατ∞σ≡√ Φτεß≡αµσφΦ . ╬±φεΓφεσ, ≈≥ε Σεδµσφ Σσδα≥ⁿ ∞σ≥εΣ imageUpdate Σδ ε≥±δσµΦΓαφΦ ∩≡ε÷σ±±α ταπ≡≤τΩΦ - ²≥ε ∩≡εΓσ≡ ≥ⁿ ⌠δαπΦ flags, ΣεµΦΣα ±ⁿ ≤±≥αφεΓΩΦ φ≤µφ√⌡ ⌠δαπεΓ. ╘δαπΦ ε∩≡σΣσδσφ√ ±δσΣ≤■∙Φ∞ εß≡ατε∞: public final static int WIDTH; public final static int HEIGHT = 2; public final static int PROPERTIES = 4; public final static int SOMEBITS = 8; public final static int FRAMEBITS = 16; public final static int ALLBITS = 32; public final static int ERROR = 64; public final static int ABORT = 128; ═Φµσ ∞√ ∩≡ΦΓσδΦ Ω≡α≥Ωεσ ε∩Φ±αφΦσ ∩σ≡σ≈Φ±δσφφ√⌡ ⌠δαπεΓ.
└φαδΦτΦ≡≤ ±ε±≥ε φΦσ ⌠δαπεΓ, ∞σ≥εΣ imageUpdate ∞εµσ≥ ±δσΣΦ≥ⁿ τα ⌡εΣε∞ ταπ≡≤τΩΦ Φτεß≡αµσφΦΘ, ε≥εß≡αµα , φα∩≡Φ∞σ≡, ∩≡ε÷σφ≥ ταΓσ≡°σφΦ ∩≡ε÷σ±±α ταπ≡≤τΩΦ ΦδΦ Γ√∩εδφ ΩαΩΦσ-δΦßε Σ≡≤πΦσ ΣσΘ±≥ΓΦ . ┼±δΦ Γα∞ φ≤µφε ≥εδⁿΩε ΣεµΣα≥ⁿ± ταΓσ≡°σφΦ ∩≡ε÷σ±±α ταπ≡≤τΩΦ, Σε±≥α≥ε≈φε Φ±∩εδⁿτεΓα≥ⁿ ⌠δαπ ALLBITS. ─δ ∩≡εΓσ≡ΩΦ ε°ΦßεΩ Γε±∩εδⁿτ≤Θ≥σ±ⁿ ⌠δαπα∞Φ ERROR Φ ABORT. |